PAT--乙 1022 D进制的A+B

1022 D进制的A+B

输入两个非负 10 进制整数 A 和 B (≤2exp30-1),输出 A+B 的 D (1<D≤10)进制数。

输入格式:

输入在一行中依次给出 3 个整数 A、B 和 D。

输出格式:

输出 A+B 的 D 进制数。

样例输入:

1
1123 456 8

样例输出:

1
1103

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int temp[32];
int main()
{
int a,b,d,count=0;
scanf("%d%d%d",&a,&b,&d);
int sum=a+b;
do{
temp[count++]=sum%d; //记录整除后的余数
sum=sum/d;
}while(sum>0);
for(int i=count-1;i>=0;i--) //逆序输出
printf("%d",temp[i]);
return 0;
}
初始代码如下,有一个样例过不去,后来想了想是sum=0时,while循环不执行,不输出。换do while循环,先执行一次,再判断。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int temp[32];
int main()
{
int a,b,d,count=0;;
scanf("%d%d%d",&a,&b,&d);
int sum=a+b;
while(sum>0){
temp[count]=sum%d;
sum=sum/d;
count++;
}
for(int i=count-1;i>=0;i--)
printf("%d",temp[i]);
return 0;
}
小礼物走一个哟
0%